docker CE 安装

$ sudo yum install docker-ce

配置yum 源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

$ sudo yum install -y yum-utils
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 或者

cat > /etc/yum.repo.d/docker.repo << EOF

[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-edge]
name=Docker CE Edge - $basearch
baseurl=https://download.docker.com/linux/centos/7/$basearch/edge
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

EOF

删除旧版

如果原来装有旧版,删除可能装有的版本

$ sudo yum remove docker docker-common docker-selinux docker-engine-selinux docker-engine docker-ce

安装

1
2
3
4
5
6
7
8

# 安装需要的依赖包

$ sudo yum install -y device-mapper-persistent-data lvm2

# 安装docker ce

$ sudo yum install docker-ce

docker 服务管理操作

1
2
3
4
5
6

$ sudo systemctl enable docker.service
$ sudo systemctl start docker.service
$ sudo systemctl stop docker.service
$ sudo systemctl restart docker.service
$ sudo systemctl status docker.service

查找docker 网桥和IP地址

1
2
3
4
5

docker 默认网桥名为docker0,并分配了一个IP 地址

$ ip a
$ ip a list docker0

docker 操作命令格式

1
2
3
4

docker command
docker command arg
docker [options] command arg

查看docker 信息和帮助

1
2
3
4
5
6
7
8

docker info
docker help | more

# 查找ps cp 命令帮助

docker ps --help
docker cp --help

docker 基本操作命令

# 运行docker容器

    docker container run hello-world

# 查找docker 镜像

    docker search nginx

# 下载docker镜像

    docker pull nginx

# 查看已有的镜像

    docker images

# 通过下载nginx镜像启动一个容器

    docker container run --name my-nginx-c1 --detach nginx

# 将本地目录/home/vivek/html/挂载到nginx 容器的nginx默认的网站目录

    docker container run --name my-nginx-c2 -p 80:80 -v /home/vivek/html/:/usr/share/nginx/html:ro -d nginx

        --name my-nginx-c1 : 给容器命名, 简写 -n
        --detach : 后台运行容器,并打印出容器ID,简写 -d
        -v /home/vivek/html:/usr/share/nginx/html:ro : 将物理机上的文件夹挂载到容器上,注意目录后面都没/,容器会自动创建没有的挂载目录
        -p 80:80 : 将容器端口映射到物理机的端口
        -e:设置环境变量

# 显示正在运行的容器

    # 加-a, 只显示正在运行的容器

    docker container ls -a

    # 列出的结果是按列显示的。每一列的值分别为:

    * Container ID :一开始的几个字符对应你的容器的唯一 ID
    * Image :你运行容器的镜像名
    * Command :容器启动后运行的命令
    * Created :创建时间
    * Status :容器当前状态
    * Ports :与宿主端口相连接的端口信息
    * Names :容器名(如果你没有命名你的容器,那么会随机创建)


    # 对应Docker 旧版本命令,旧版不需要加container, 其它命令类似

    docker ps
    docker ps -a

# 通过容器id或容器名,在容器上运行命令

    docker container exec fe0cdbc0225a ls /etc/nginx

    docker container exec my-nginx-c1 ls /etc/nginx


# 获取容器bash ,并保存修改

    docker container exec -i -t fe0cdbc0225a bash

    docker container exec -i -t my-nginx-c1 bash


# 通过容器ID或容器名停止容器

    docker container stop my-nginx-c1

    docker container stop fe0cdbc0225a

# 启动已停止的容器

    # 一个已经停止并保存了当时运行状态的容器。启动后,它将以停止时的状态重新开始运行。

    docker container start my-nginx-c1

# 删除容器

    # 容器删除之前必须是先停止

    docker container rm my-nginx-c1

    docker container ls

# 查看 Docker 容器的历史纪录

    docker container logs my-nginx-c1

# 查看 Docker 容器的进程

    docker container top my-nginx-c1